package com.huitone.smspfm.socket.core.handler;

import com.huitone.smspfm.socket.core.net.ExtSocket;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.ActiveTest;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.ActiveTestResp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.BindResp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Deliver;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.DeliverResp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Report;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Report2;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Report2Resp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.ReportResp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Submit;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Submit2;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Submit2Resp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.SubmitResp;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.UnBind;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.UnBindResp;
import com.huitone.smspfm.socket.protocol.sgip.message.msghead.Head;

public interface MessageHandler {
	
	/**
	 * 处理要求绑定信息
	 * @param head
	 * @param body
	 */
	//void handleBindMessage(Head head, Bind body, ExtSocket socket);
	
	/**
	 * 处理绑定响应信息
	 * @param head
	 * @param body
	 */
	void handleBindRespMessage(Head head, BindResp body, ExtSocket socket);
	
	/**
	 * 处理提交信息
	 * @param head
	 * @param body
	 */
	void handleSubmitMessage(Head head, Submit body, ExtSocket socket);
	
	/**
	 * 下行短信响应
	 * @param head
	 * @param body
	 */
	void handleSubmitRespMessage(Head head, SubmitResp body, ExtSocket socket);
	
	/**
	 * 处理上行短信
	 * @param head
	 * @param body
	 */
	void handleDeliverMessage(Head head, Deliver body, ExtSocket socket);
	
	/**
	 * 上行短信响应
	 * @param head
	 * @param body
	 */
	void handleDeliverRespMessage(Head head, DeliverResp body, ExtSocket socket);
	
	/**
	 * 处理报告信息
	 * @param head
	 * @param body
	 */
	void handleReportMessage(Head head, Report body, ExtSocket socket);
	
	/**
	 * 报告响应信息
	 * @param head
	 * @param body
	 */
	void handleReportRespMessage(Head head, ReportResp body, ExtSocket socket);
	
	/**
	 * 解除绑定信息
	 * @param head
	 * @param body
	 */
	void handleUnBindMessage(Head head, UnBind body, ExtSocket socket);
	
	/**
	 * 解除绑定响应信息
	 * @param head
	 * @param body
	 */
	void handleUnBindRespMessage(Head head, UnBindResp body, ExtSocket socket);
	
	/**
	 * 链路测试信息
	 * @param head
	 * @param body
	 */
	void handleActiveTestMessage(Head head, ActiveTest body, ExtSocket socket);
	
	/**
	 * 链路测试响应信息
	 * @param head
	 * @param body
	 */
	void handleActiveTestRespMessage(Head head, ActiveTestResp body, ExtSocket socket);
	
	/**
	 * 处理提交信息
	 * @param head
	 * @param body
	 */
	void handleSubmit2Message(Head head, Submit2 body, ExtSocket socket);
	
	/**
	 * 下行短信响应
	 * @param head
	 * @param body
	 */
	void handleSubmit2RespMessage(Head head, Submit2Resp body, ExtSocket socket);
	
	/**
	 * 处理报告信息
	 * @param head
	 * @param body
	 */
	void handleReport2Message(Head head, Report2 body, ExtSocket socket);
	
	/**
	 * 报告响应信息
	 * @param head
	 * @param body
	 */
	void handleReport2RespMessage(Head head, Report2Resp body, ExtSocket socket);

}
